package com.itheima.health.controller;

import com.itheima.health.common.PageBean;
import com.itheima.health.common.PageDto;
import com.itheima.health.common.Result;
import com.itheima.health.model.dtos.AddCheckGroupDto;
import com.itheima.health.model.dtos.UpdateCheckGroupDto;
import com.itheima.health.model.vos.CheckGroupVo;
import com.itheima.health.service.CheckGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 这个类是：
 *
 * @author: 25122
 * @date: 2024/6/2 21:36
 * @version: 1.0
 */
@RestController
public class CheckGroupController {
    @Autowired
    private CheckGroupService checkGroupService;

    /**
     * 分页查找
     *
     * @param dto dto
     * @return {@code PageBean<CheckGroupVo> }
     */
    @PostMapping("/checkgroup/findPage")
    public PageBean<CheckGroupVo> findPage(@RequestBody PageDto dto) {
        PageBean<CheckGroupVo> pageBean = checkGroupService.findPage(dto);
        return pageBean;
    }

    /**
     * 添加检查组
     *
     * @param dto dto
     * @param ids 身份证
     * @return {@code Result }
     */
    @PostMapping("/checkgroup/add")
    public Result addCheckGroup(@RequestParam("checkitemIds") Integer[] ids, @RequestBody AddCheckGroupDto dto) {
        checkGroupService.addCheckGroup(dto, ids);
        return Result.success();
    }

    /**
     * 按id查找检查组
     *
     * @param id id
     * @return {@code Result<CheckGroupVo> }
     */
    @GetMapping("/checkgroup/findById")
    public Result<CheckGroupVo> findCheckGroupById(@RequestParam("id") Integer id) {
        CheckGroupVo checkGroupVo = checkGroupService.findCheckGroupById(id);
        return Result.success(checkGroupVo);
    }

    /**
     * 更新检查组
     *
     * @param checkItemIds 检查项目id
     * @param dto          dto
     * @return {@code Result }
     */
    @PostMapping("/checkgroup/edit")
    public Result updateCheckGroup(@RequestParam("checkitemIds") Integer[] checkItemIds,
                                   @RequestBody UpdateCheckGroupDto dto) {
        checkGroupService.updateCheckGroup(checkItemIds, dto);
        return Result.success();
    }

    /**
     * 删除检查组
     *
     * @param id id
     * @return {@code Result }
     */
    @DeleteMapping("/checkgroup/delete/{id}")
    public Result deleteCheckGroup(@PathVariable("id") Integer id) {
        checkGroupService.deleteCheckGroup(id);
        return Result.success();
    }
    /**
     * 检查组展示  供  套餐新增使用
     *
     * @return {@code Result<List<CheckGroupVo>> }
     */
    @GetMapping("/checkgroup/findAll")
    public Result<List<CheckGroupVo>> findAll() {
        List<CheckGroupVo> list = checkGroupService.findAll();
        return Result.success(list);
    }
}
